The present invention relates to receivers employed for range measurements using radio-signals encoded by a pseudo-random code, and more particularly to such receivers which reduce the reception errors caused by reflected versions of the directly received signal (i.e., multipath error reduction).
Multichannel receivers for receiving broadcasted radio-signals encoded by repeating pseudo-random (PR) codes are employed by consumers using the global satellite navigation systems GPS (xe2x80x9cNAVSTARxe2x80x9d) and GLN (xe2x80x9cGLONASSxe2x80x9d). These systems enable one to determine the receiver""s location and its velocity vector, and also to determine the time of day. The present invention is applicable to these types of receivers, and to other types of receivers and demodulators which receive signals which are encoded by repeating PR-codes. The signals to be demodulated may be broadcast by antenna, may be transmitted through wire or optical fiber, or may otherwise be transmitted by known transmission means.
In the GPS and GLN systems, the receiver simultaneously receives several broadcasted signals from several corresponding satellites which are xe2x80x9cvisiblexe2x80x9d to the receiver (as used herein, the term xe2x80x9cvisiblexe2x80x9d means that the satellite broadcast signal is not blocked from the receiver by a physical object, such as a building or the Earth). At any one time, 5 to 11 of the 24 GPS satellites are visible to the receiver. Every GPS satellite broadcasts signals in two frequency bands: the L1 band and the L2 band. In the L1 band, two radio-signal carriers are simultaneously broadcasted, each carrier having the same frequency but being phase shifted in time with respect to one another by xcfx80/2 (90xc2x0), which is one-quarter (xc2xc) of the carrier wavelength. One of these carriers is modulated by a clear acquisition code (C/A-code) and the other carrier is modulated by a precision code (P-code). Both of these codes are pseudo-random sequences of +1 and xe2x88x921 values, each sequence having a predetermined length and being continuously repeated. In the L2 band, a single radio-signal carrier is modulated by the above-described P-code, but the frequency of the L2-carrier is substantially lower than that of the L1-carrier. This frequency difference enables one to account for the changing transmission characteristics of the ionosphere. The present invention is applicable to the reception of either or both of the C/A-code and the P-code (in either band). The reception of the C/A-code will be used herein to illustrate the present invention.
In the GPS system, each satellite is assigned its own unique C/A-code, which enables the receiver to distinguish between the satellites even though all the C/A-codes are being modulated onto carriers having substantially the same frequency. Each repeating sequence of a C/A-code is quantized into 1,023 segments, or xe2x80x9cchipsxe2x80x9d, where each chip is of a predetermined time period (xcex94) and has pre-selected value, which is either +1 or xe2x88x921. The sequence repeats itself every millisecond. When the C/A code is modulated onto the carrier, it is often called the C/A-signal. The particular set of chip values for each sequence is unique to the satellite, and the cross-correlation of each C/A-code sequence with those of the other satellites is substantially zero in comparison with the cross-correlation of the signal with itself (auto-correlation). This last feature applies as well to the corresponding C/A-signals and it enables a GPS receiver to isolate any one of the C/A-signals from the others being received by correlating the input signal (after appropriate down-conversion) with the C/A-signal to be isolated.
In order to provide useful timing and positional information, the C/A-signals in some of the satellite-broadcast bands are modulated by a low-frequency (50 Hz), binary-coded information signal A(t) which is transmitted as a repeating sequence of 1,500 bits. Each bit of A(t) has a value of xe2x88x921 or +1, is synchronized to start with the beginning of a C/A-code sequence in the C/A-signal, and spans 20 sequences of the C/A-code. The C/A-signal is so modulated by multiplying its C/A-code sequence values by either xe2x88x921 or +1, depending upon the current bit value of the information signal A(t). In the receiver, the information signal A(t) can be demodulated by correlating the broadcasted C/A-signal with an internally generated version of the C/A-code to provide a correlation signal I(t), and by noting the sign changes in the correlation signal I(t) (assuming that both C/A-signals are substantially synchronized). As a fine technical point, we note that correlation signals in the GPS art, such as I(t), are usually not continuous functions of time since they are often generated by accumulating multiplication products over fixed time durations (TA), with these time durations following one another consecutively. As a result, typical correlation functions are discrete time signals (with update frequency of fA=1/TA). To denote such a discrete time signal, we will use the time indicator symbol xe2x80x9ctKxe2x80x9d as the signal""s time argument, where the subscript xe2x80x9cKxe2x80x9d indicate the discrete nature of the time, such as in the form: I(tK).
For the general benefit of the reader, the following differences between the GPS and GLN systems are noted:
1) In the GPS system, the signals from all the GPS satellites are transmitted on the same carrier frequency (1575.42 MHz in the L1 band, 1227.60 MHz in the L2 band), but each has its own unique PR-code. In the GLN system, the signals from different satellites have different carrier frequencies, but have the same C/A-codes and P-codes.
2) In the GPS system, the xe2x80x9cchipsxe2x80x9d in the C/A-codes are clocked out at a rate of 1.023 MHz (for a chip period xcex94=977.52 ns), whereas the chips for the C/A-code in the GLN system are clocked out at one-half that rate, which is 0.511 MHz (for a chip period xcex94=1956.95 ns).
3) In both systems, the chips for the P-codes are clocked out at a rate which is ten-times that for the clocking rate of their C/A-codes. Specifically, the P-code clocking rate is 10.23 MHz (xcex94=97.75 ns) in the GPS system and 5.110 MHz (xcex94=195.69 ns) in the GLN system.
4) In the GPS system, the P-code is additionally modulated by W-code whose sequence structure is unknown to civilian users. The GLN system has no similar modulation.
In conventional receivers, the broadcast signal from the satellites are received, and down-converted by an appropriate means to provide the desired C/A-codes (or P-codes), usually in a digital form. The down-converted signal bearing all of the received C/A-codes is then provided to one or more individual tracking channels, each of which is intended to isolate one of the satellite C/A-codes from the others and track it. The C/A-code to be tracked by a specific tracking channel is not only obscured by the C/A-codes of other satellites, but by noise signals received by the receiver and noise generated within the electronics of the receiver. In order to isolate the desired C/A-code for the others and from the noise, the down-converted signal is correlated against a replica of the desired C/A-code as indicated above. The reference replica is phase-shifted in time to a point where the correlation of the two signals is at a maximum. The correlation may be performed by multiplying the values of the two signals together at periodic intervals, and then accumulating multiplication products to form the correlation signal I(tK). Devices which perform this operation are called correlators, and may be implemented by hardware, software (i.e., DSP processor) or a combination of both. In typical implementations, the correlator accumulates the multiplication products for a fixed period of time, which is sometimes referred to as the accumulation period or accumulation window. After each accumulation period, the correlator is reset to a value of zero. Typical accumulation periods for GPS/GLN applications are 1-ms, 5-ms, and 10-ms.
Within a period of one C/A-code sequence (e.g., 1,023 chips), the accumulation of the multiplication products of the tracking channel""s replica reference code with the C/A codes of satellites not being tracked by the channel will sum to substantially zero. However, the accumulation of the multiplication products of the reference code and the C/A-code to be tracked by the channel will rise to a non-zero peak value (+MAC or xe2x88x92MAC) when the two signals are synchronized. This value will be provided in the correlation signal I(tK). Whether the output value from the correlator is +MAC or xe2x88x92MAC depends upon the current bit value of the low-frequency information signal A(t), if present, and any polarity difference between the satellite C/A-code and the channel""s reference C/A-code. These dependencies are well known to the GPS/GLN art. (If (A(t) is present, I(tK) will alternate between +MAC and xe2x88x92MAC as a function of A(t)""s value.) As these signals lose synchronization, the accumulation of the multiplication products, which is the correlator output, will move from +MAC or xe2x88x92MAC toward a value of zero, and will settle to a value of zero if the two are out of synchronization by more than one chip period (xcex94).
The correlator whose output demodulates the information signal A(t) is often called the Main Correlator. The correlation of a received PR-code signal with an idealized-version of the same PR-code signal, as generated locally by the receiver with the same sign orientation but out of sync by a time delay xe2x80x9cxcex5xe2x80x9d, is is defined herein as the inter-correlation function: R0(xcex5). R0(xcex5) is more simply referred to as the correlation function R0(xcex5). When xcex5=0, which means the two versions are in sync, R0(xcex5=0) is at its peak magnitude value (+MR0). When e is greater than +1 chip duration (+xcex94) or less then xe2x88x921 chip duration (xe2x88x92xcex94), R0(xcex5) is substantially zero. As xcex5 moves from 0 to +1 chip of delay, R0(xcex5) decreases substantially monotonically with xcex5 from its peak value (+MR0) to zero. Likewise, as xcex5 moves from 0 to xe2x88x921 chip of delay, R0(xcex5) decreases substantially monotonically with s from its peak value (+MR0) to zero. The output of the Main Correlator will be proportional to R0(xcex5), as well as A(t) if A(t) is present. The output I(tK) of the Main Correlator is often used to provide a measure of the satellite""s signal strength.
It should be pointed out that a reference code for a tracking channel need not be a scaled replica of the broadcast C/A-code being tracked. Oftentimes, pulsed versions of the replica are used, as well as strobed versions which each strobe has a grouping of pulses for each chip of the broadcast C/A code. Each of the pulses and strobes is less than the chip duration xcex94. Each pulsed version and each strobed version may have pulses or strobes omitted for selected chips of the code (usually when the chip value does not change from the value of the previous chip). The correlation function of a pulsed version or a strobed version of the C/A code with the received C/A code will be different from the correlation function described above. The conventional notation for representing the correlation function of a pulsed or strobed version with the input code is xe2x80x9cxcex94Rxe2x80x9d rather than xe2x80x9cRxe2x80x9d. In this case, the xe2x80x9cxcex94xe2x80x9d symbol does not represent the chip duration xcex94, and xe2x80x9cxcex94Rxe2x80x9d should not be read as multiplying the correlation function xe2x80x9cRxe2x80x9d by the chip duration (xcex94).
In the case where the broadcast signal comes from a GPS or GLONASS satellite, the information signal A(t) carries a reading of the current time of a master clock, the time information being accurate to within several milliseconds, assuming that one computes the rough transmission delay from the satellite. Additionally, the start of each C/A-code sequence is precisely timed with respect to the master clock, so precisely synchronizing the replica signal with the C/A-code of the broadcast signal could bring the timing accuracy to within less than a one chip duration xcex94 (about one microsecond), assuming that one knows the transmission delay from the satellite. The transmission delay may be determined by comparing information from the L2 band from the same satellite and information from the broadcast signals from other satellites, as is known in the GPS/GLN art. The timing information from four or more satellites can then be used to determine the global position of the receiver on the Earth, and many receivers have four or more Main Correlators for this purpose.
In order to accomplish proper extraction of the timing information and the demodulation of the information signal A(t), if present, the a receiver""s tracking channel has a means of keeping the replica signal in synchronization with the C/A-code of broadcast signal. This means is usually called a delayed-lock loop (DLL) system. The DLL system may use the Main Correlator for maintaining synchronization, but more typically it has one or more of its own correlators for this purpose, each of these correlators using a pulsed or strobed version of the C/A-code, or a replica of the C/A code which are offset in time from that used by the Main Correlator. Also, the tracking channel usually has a means of generating a local carrier for the down-converter whose frequency is continuously adjusted to be in close synchronization with the carrier frequency from the satellite (the C/A-code modulates this carrier frequency). This means is usually called a phase-lock loop (PLL) system, and the tracking channel is said to use the xe2x80x9ccoherent demodulationxe2x80x9d method, and the receiver is often called a xe2x80x9ccoherent receiver.xe2x80x9d Like the DLL system, the PLL system usually has one or more of its own correlators to aid it in isolating the carrier phase of the satellite signal being tracked by the tracking channel. Thus, a typical coherent receiver tracking channel has a Main xe2x88x9215 Correlator, a DLL system, and a PLL system, each of which processes the input signal in individual signal-processing correlators, for a total of three such correlators. For this reason, a coherent tracking channel is sometimes called a three-correlator channel (or sometimes a three-path channel).
In the typical coherent tracking channel, the proper operation of the Main Correlator, the DLL system, and the PLL system are each dependent on the proper operation of the other. For example, each of the DLL and PLL systems uses the demodulated information from the Main Correlator to remove the modulation effects of the low-frequency information signal A(t). In turn, all of the three components use the replica signal, as synchronized by the DLL system, to isolate the desired C/A-code from all of the other C/A-codes and the various source of noise. In turn, the DLL system relies on the PLL system to adjust the carrier phase to provide a maximum signal to noise ratio and to prevent carrier cycle-slips. The operation of each of three components can be disturbed by the presence of multipath signals (i.e., reflected and delayed versions of the broadcast signal).
The PLL system may be replaced with the well-known incoherent demodulator system. In this system, the input signal is down-converted using an independent carrier reference signal which does not have its phase adjusted to follow that of the input signal. Also in this system, the correlation signals for the DLL system and Main Correlator are generated such that they do not depend upon phase synchronization of the independent reference carrier and the input signal. However, this system requires the formation of four signal-processing correlators rather than three, and loses the timing information that may be extracted from the PLL synchronizing the reference carrier with the input carrier (which is a coherent method). The latter information may be extracted by other means, but such means requires additional components. Nonetheless, as the present invention pertains to both DLL and PLL systems, the performance of DLL systems of incoherent tracking channels can benefit from the present invention.
As is well known in the art, an initial-locking control system, or xe2x80x9csearchxe2x80x9d system, is used to bring the DLL and PLL systems into rough alignment with the C/A-code and the carrier of the broadcast signal before these systems begin full tracking operation based upon the interdependence of their output signals. The initial lock control system generally varies the frequency of the local carrier and the phase of the replica code in a predetermined search pattern until a substantial correlation is detected, and thereafter enables full tracking operation. The initial-locking control systems are well known in the art, and are not part of the present invention. Many of the well known initial-locking systems may be used with the present invention. Accordingly, a description of such a system herein is not needed for one of ordinary skill in the art to make, use, and practice the present invention. For the benefit of the reader who is untrained in the field of code searching and tracking, the book entitled xe2x80x9cDigital Communications and Spread Spectrum Systems,xe2x80x9d by Ziemer and Petersen, Macmillian Publishing Company, New York (1985) (ISBN 0-02-431670-9) (Chapters 10 and 11) is a good tutorial reference on these subjects, and the book entitled xe2x80x9cGuide to GPS Positioning,xe2x80x9d by Wells, et al., Canadian GPS Associates, Fredericton, N. B. Canada (1986) (ISBN 0-920-114-73-3) is a good tutorial on GPS systems. The latter reference may be purchased from the Canadian Institute of Surveying and Mapping, Box 5378, Postal Station F, Ottawa, Ontario, Canada, K2C 3J1, telephone (613) 224-9851.
Under real operating conditions, the PLL and DLL systems operate with errors caused by outside disturbances. Exemplary disturbances are additive interferences (including the receiver""s own noise sources), multiplicative interferences (e.g., fluctuations occurring when the radio-waves undergo expansion, generator frequency instability), dynamic disturbances because of the receiver""s physical movement, and so on. In critical cases, these disturbances can lead to the tracking breakdown or to single-cycle slips in the PLL.
One of the most substantial causes of errors is the reflection of the broadcast signal from the ground or nearby physical objects, such as buildings, large boulders, and hills. These errors are often referred to as multipath errors, and can substantially reduce the precision of both the code measurements and the carrier phase measurements.
A number of general methods for dealing with multipath errors are known. One general set of methods derives corrections which are to be applied to the received GPS signals in order to subtract out the effects of the multipath signals. These methods construct a model of the environment surrounding the receiver and compute the magnitudes and phases of the reflected signals. These methods are usually not preferred since a new model for each new environment is required, and is therefore not generally applicable to all situations in which the receiver may be placed.
Another method for dealing with multipath errors is the so called MET technique. In this method, the curve of the correlation function R0(xcex5) is traced out as a function of the delay parameter E to find the peak value of R0(xcex5) and the slope of the curve on each side of the peak. From the peak value and the slopes, an estimation of the reflected signal can be made, and a correction for the multipath signal can be made. Several correlators are typically used in this method, which has the disadvantage of increasing the cost and complexity of the receiver.
Another general set of methods includes special circuitry or signal processing of the received signal which act to reject, or discriminate against, multipath signals. In a conventional receiver which does not have multipath rejection, the received broadcast signal is simultaneously correlated against two versions of the C/A-code by two separate correlators. The second version of the C/A-code is delayed in time from the first version by one-chip duration (xcex94), and the resulting correlations of these versions with the broadcast signal are subtracted from one another to provide the control signal to the DLL. When these two versions are synchronized to the broadcast signal, the control signal has a value of zero, and the chip edges (fronts) of the broadcast signal occur midway between the corresponding chip edges of the two versions (which are often called the xe2x80x9cearlyxe2x80x9d and xe2x80x9clatexe2x80x9d versions). In these receivers, multipath signals which are delayed by less than 1.5 chip durations (1.5xcex94) from the directly received broadcast signal will be correlated into one or both correlations, and will thereby disturb the computation of the control signal. The receivers which include multipath rejection use strobed representations of the early and late C/A-code versions, and use a shorter phase delay between the strobed representations. The strobed representations are normally at a zero value except for small time windows around the start of all of the chip edges (or at selected ones of the chips edges), where the representation has one or more pulses. If there is more than one pulse in such a time window, the pulses are arranged to have a total area of zero (in other words, equal positive and negative areas), and are usually symmetric about a line (or plane) or rotation point. (These features lead to a symmetric discriminator curve.) The basic idea behind these strobe receivers is to only perform the correlations in small sample windows near the points where the directly received signal changes its value so that the value or changes in values of the reflected signals are not sampled or correlated.
Although the strobed receivers provide a great reduction in errors caused by multipath signals, they do have some disadvantages. As one disadvantage, the output signal of the DLL discriminator is zero not only at the point of desired synchronization with the directly-received broadcast signal, but the control signal is zero over much of its range from +1 chip duration (+xcex94) from synchronization to xe2x88x921 chip duration (xe2x88x92xcex94) from synchronization. Thus, an external means, such as a conventional early-late receiver, must be used to bring the receiver close enough to the point of synchronization where the strobe-receiver can function. This has the disadvantage of requiring additional circuitry and/or additional signal processing power. As a corollary to this, the locking range of the strobed receivers is much smaller than that of the conventional early-late correlation receiver. As a second disadvantage, each multipath signal of substantial value will create perturbations in the zero regions of the DLL control signal, and these perturbations have a zero-crossing point which the DLL can falsely lock onto. Therefore, the strobe correlators require means for distinguishing the true point of synchronization from these false-locking points.
While the strobed methods have been described in the context of the DLL system, they may also be used in the PLL system. As in the DLL system, the strobe pulses reduce the effects of multipath signals in the PLL system. However, the strobe pulses increase the noise errors in the PLL system, which is a disadvantage.
Another approach for addressing multipath signals is described by Philip G. Mattos in a paper entitled xe2x80x9cMultipath Elimination for the Low-Cost Consumer GPS,xe2x80x9d from the Proceedings of the 9th International Technical Meeting of the Satellite Division of the Institute of Navigation (Kansas City, Mo. U.S.A.), 1996. Instead of using an xe2x80x9cearlyxe2x80x9d correlator and a xe2x80x9clatexe2x80x9d correlator, this approach uses two xe2x80x9cearlyxe2x80x9d correlators, the output signals of which are called xe2x80x9ce1xe2x80x9d and xe2x80x9ce2xe2x80x9d, respectively. Each correlator correlates the input signal with a replica of the PR-code being tracked, but the replica code signals are offset in time from one another by xe2x85x9 of a chip to xc2xd of a chip. The signal e1 comes from the replica which is earlier in time. The time offset of these replica code signals with respect to the satellite PR-code is adjusted such that the ratio of the e1 signal (the earlier one) to the e2 signal (i.e., e1/e2) is equal to a predetermined fractional amount, such as 0.95 for an xe2x85x9 chip separation in replica codes. The ratio is determined by simulations given certain assumption about the characteristics of the receiver, and a control loop may be set up to minimize the quantity: (e1/e2)xe2x88x920.95. Because the output e1 appears as the numerator in the ratio, and because the ratio is being controlled to a value less than 1, the operating points of both earlier correlators will be positioned on the early edge of the correlation function, where the effects of multipath signals are minimized (by their very nature, reflected multipath signals are received after the main signal). A disadvantage of this method is that susceptible to noise.
When attempting to find ways of reducing the effects of multipath errors, one finds that actions taken to improve the rejection of multipath signals leads to adverse impacts on important characteristics of the receiver, and one is often forced to accept less improvement in multipath rejection for the sake of maintaining other characteristics within acceptable ranges. For example, known correlators that reduce multipath errors have worse indexes of lock. Other actions aimed at reducing multipath errors lead to increases in the noise error or the processor load on the signal processing circuitry.
The developer of such receivers is always faced with the problem of compromising solution choices when taking into account all of the factors and real conditions of the receiver""s operation.
The aim of the present invention is to provide multipath error reduction in PLL and DLL systems while not considerably worsening their lock characteristics or increasing the cost and complexity of the receiver""s hardware.
The present invention encompasses multipath error reduction techniques which enable this error in the DLL systems to be made much less than the error present in known narrow xe2x80x9cearly-latexe2x80x9d correlators, or their corresponding implementations which use strobe representations of the PR-code. The present invention also encompasses multipath error reduction techniques that enable multipath errors in the PLL systems to be reduced. The techniques, when applied to both the DLL and PLL systems work synergistically to further reduce multi-path errors.
Broadly stated, the present invention comprises DLL and/or PLL systems having control signals (Ed and Ep, respectively) which vary with the time delay shift parameter xcex5, which is the difference in time between a chip edge of the PR-code of the broadcast signal and the corresponding edge of the reference PR-code signal (generated by the receiver). The present invention further comprises an asymmetric relationship in one or both of these control signals, such that variation in the control signal is asymmetric about the point steady-state operation (xcex5=xcex50).
In preferred DLL embodiments according to the present invention, the control signal Ed of the DLL system is relatively small and of a first polarity when the receiver""s reference PR-code leads the PR-code of the broadcast signal (xcex5 less than xcex50), and is relatively large and of the opposite polarity when it lags the PR-code of the broadcast signal (xcex5 greater than xcex50). The asymmetric feature enables substantial reduction of multipath errors in the DLL system without degrading the code-locking bandwidth of the DLL system in the range xc2xdxcex94 less than xcex5 less than xc2xdxcex94 (xcex94=one chip period), which has been the case with prior art multipath reduction techniques. Moreover, the asymmetric feature also enables a reduction in probability of the DLL system falsely locking on to a lagging multipath signal.